//存放本地的mock文件
import mockjs from 'mockjs'
import pkg from 'mockjs'
const { Random } = pkg //这是mock生成数据的一种方式；不这样写，跑本地会出现关于require的问题

/**
 * 下面的数据生成，笔者使用了一种比较笨的方法，熟悉mock的同学可忽略-_-
 */
interface IInterface {
  url: string
  method: string
  response: Function
}

//用户数据
const userArray: Array = []
for (let i = 0; i < 10; i++) {
  userArray.push(
    mockjs.mock({
      name: Random.cname(), //随机生成中文名字
      age: Random.integer(18, 40), //随机生成18-40的数字
      birth: Random.date(), //随机生成年月日
    })
  )
}

//商品数据
const goods: array = []
for (let i = 0; i < 10; i++) {
  goods.push(
    mockjs.mock({
      name: Random.ctitle(), //随机生成标题
      price: Random.integer(11, 400), //随机生成11-400的数字
      sourceAddress: Random.county(true), //随机生成省市县级城市
      image: Random.image('100x100'), //随机生成100*100的图片
      num: Random.integer(1, 100), //随机生成1-100的数字
    })
  )
}
const mock: Array<IInterface> = [
  //这里应该是做拦截的方法api集合
  //拦截获取数据的请求
  {
    url: '/api/getData',
    method: 'get',
    response: () => {
      return {
        status: 200,
        message: 'success',
        data: userArray,
      }
    },
  },
  //拦截获取商品的请求
  {
    url: '/api/goods',
    method: 'get',
    response: () => {
      return {
        status: 200,
        message: 'success',
        data: goods,
      }
    },
  },
]

export default mock //暴露，以便在src/main.ts中引入
